package org.example.exception;

import lombok.extern.slf4j.Slf4j;
import org.example.pojo.Result;
import org.springframework.dao.DuplicateKeyException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

@Slf4j
@RestControllerAdvice
public class GlobalExceptionHandler {
    //异常处理器  抓取异常
    @ExceptionHandler
    public Result handle(Exception e){
        log.error("服务器发生异常:{}",e.getMessage());
        e.printStackTrace();//打印异常信息
        // 实际开发中还会对异常的类型进行判断  针对不同的异常 做不同的处理
        if(e.getMessage().contains("Duplicate")){
            return Result.error("用户名或手机号重复,系统中已有相同的用户名或手机号");
        } else if (e.getMessage().equals("该部门下有员工，不能删除")) {
            return Result.error("该部门下有员工，不能删除");
        } else if (e.getMessage().equals("对不起，当前班级下有学生，不能直接删除！")) {
            return Result.error("对不起，当前班级下有学生，不能直接删除！");
        }
        return Result.error("对不起,操作失败,请联系管理员");
    }
}
